<?php
// 调试版本的流式输出测试

// 开启错误报告
error_reporting(E_ALL);
ini_set('display_errors', 1);

// 引入ThinkPHP
require '../thinkphp/start.php';

// 设置响应头
header('Content-Type: text/event-stream; charset=utf-8');
header('Cache-Control: no-cache, no-store, must-revalidate');
header('Pragma: no-cache');
header('Expires: 0');
header('Connection: keep-alive');
header('Access-Control-Allow-Origin: *');
header('X-Accel-Buffering: no');

// 清除所有输出缓冲区
while (ob_get_level() > 0) {
    ob_end_clean();
}

// 禁用PHP输出缓冲
ini_set('output_buffering', 'off');
ini_set('zlib.output_compression', 'off');
ini_set('implicit_flush', '1');

// 启用自动刷新
ob_implicit_flush(true);

// 设置无限制执行时间
set_time_limit(0);

echo "retry: 1000\n\n";
flush();

// 发送测试事件
for ($i = 1; $i <= 10; $i++) {
    echo "event: message\n";
    echo "data: 测试消息 $i\n\n";
    flush();
    
    // 延迟1秒
    sleep(1);
}

echo "event: end\n";
echo "data: 测试结束\n\n";
flush();